package 力扣_滑动窗口.第一类模板;

/**
 * @author zx
 * @create 2022-05-10 16:50
 */
public class 替换后的最长重复字符_424 {
    public int characterReplacement(String s, int k) {
        int[] num = new int[26];//记录窗口内各字母出现的次数
        int max = 0;//当前窗口内字母的最大次数
        int left = 0;
        int res = 0;
        for(int right = 0;right < s.length();right++){
            num[s.charAt(right) - 'A']++;//当前字母出现的次数
            max = Math.max(max, num[s.charAt(right) - 'A']);//窗口内所出现字母的最大次数
            while(right - left + 1 - max > k){//非最大次数的字母出现次数 > k
                num[s.charAt(left) - 'A']--;//窗口左移,移除元素，次数-1
                left++;
            }
            res = Math.max(res,right - left + 1);
        }
        return res;
    }
}
